home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
LOGIC Apps
/
Logic-APPLE_II_APPS.iso
/
mac
/
LOGIC Apple II 5.25" Library - ProDOS
/
PRO086B.dsk
/
MODEM.DOC.txt
< prev
next >
Wrap
Text File
|
2012-02-16
|
17KB
|
402 lines
Modem.Doc file
Updated September 4, 1989 for version 3.03
Contents:
Introduction
List of Included Drivers
DIP settings for DataLink 1200/2400
How to Install a live driver
Cable/Modem Specs for GS.Driver
Cable/Modem Specs and DIP settings for SSC.Driver
Cable/Modem Specs for IIc.Driver
Using the IIc driver when the SSC.Driver doesn't work
The Modem.Init file
Introduction
This file documents modem requirements and driver selection. Although Warp Six
is written in Applesoft BASIC, the input/output drivers are written in 6502
assembly language. To use Warp Six, you have to install three files in the
"/W6/WARP6" directory:
1) The Warp6.Loader program
2) The appropriate driver, renamed to be "Warp6.Driver"
3) The Modem.Init text file, containing initialization command for your modem
The Warp6.Loader and Warp6.Driver programs that come installed in the /W6/WARP6
directory are modem-disabled versions -- the are copies of Local.Loader &
Local.Driver found on side 2 of the distribution diskette or in the
supplementary file, 'W6BBS2.BXY'.
Rather than write five or six different modem drivers, there is only one
for each interface, and they are set for a default speed of 2400 baud. If you
have a 1200 or 300 baud modem, you must modify this line in LOGON:
36 POKE BA+49,3:REM 3=2400 baud, 2=1200 baud, 1=300 baud.
WARNING: Be certain you use the fastest speed your modem is capable of.
List of Included Drivers:
GS.DRIVER - use this with an Apple IIgs (in fast mode) with any Hayes or
compatible external modem. If you have a DataLink 2400, use the SSC.Driver
and if you have a DataLink 1200, use the DataLink 1200 driver. Note that
the SCC.Driver is designed to run on a 1.02Mhz machine; if you use it on
the GS in fast mode, you'll need to modify some timeout values with POKEs.
(See Warp6.Doc)
SSC.DRIVER - use this with an Apple Super Serial Card (or equivalent), with
any Hayes compatible external modem. (See DIP settings below)
IIC.DRIVER - use this with the IIc (not IIc Plus) with any Hayes compatible
external modem.
DATALINK.1200 - this is an UNTESTED driver for the Applied Engineering
Datalink 1200 modem card. DataLink 2400 users should use the SSC.DRIVER
(not the DataLink 1200 driver) with the DataLink 2400 jumpers set to B-D only.
** Do me a favour: whether this works, or doesn't work, let me know. -- JF
DIP Swith Settings for DataLink modems:
Set your DataLink 2400 (and 1200) DIP switches like so:
SW1-C Interrupts on
SW2- For 2400: Open - carrier follows remote modem. For 1200:try Open
SW3- For 1200: Open - carrier follows remote modem. For 2400:try Open
SW4-C (the rest of the switches affect baud rate and parity, but Warp Six
SW5-C does not use firmware, so they MAY be irrelevant.)
SW6-C
SW7-C
SW8-C
How to Install a Live Driver:
To install a live modem driver, replace the file /W6/WARP6/WARP6.DRIVER
with the driver that fits your modem, and replace the /W6/WARP6/WARP6.LOADER
file with the WARP6.LOADER file included in W6BBS2.BXY (or on side two of
the distribution diskette). The files you are replacing are actually copies
of the Local.Loader and Local.Driver, which are used to experiment with the
system without attaching a modem. Be sure to rename your driver as
"WARP6.DRIVER", or the program will generate a "Path not Found" error.
Note: I recommend you use Warp Six with an Apple II that is an enhanced IIe
or higher. However, the drivers will function on a 64k II Plus. Warp Six
drivers have been tested at 300, 1200 and 2400 baud.
GS.Driver Interface Cable Specifications and modem requirements
In order for the GS serial port driver to work, you need a custom modem
cable. The modem specs are the same as for the SSC.Driver, which follows.
For Hayes external modems and compatibles, use the following:
Mini-DIN-8 (GS) to DB-25 (Modem)
1 DTR ----------------- 20 DTR
2 HSKi ---------------- 8 DCD (This is the important line)
3 TXD ----------------- 2 TXD
4 & 8 GND&RXD+ --------- 7 SGND Signal Ground
5 RXD ----------------- 3 RXD
For the Apple Data Modem 2400:
1 DTR ----------------- 1 DTR
2 HSKi ---------------- x DCD (not sure which pin this is; check the manual)
3 TXD ----------------- 3 TXD
4 GND ----------------- 4 GND
5 RXD- ---------------- 5 RXD-
6 TXD+ ---------------- 6 TXD+
8 RXD+ ---------------- 8 RXD+
The GS Control Panel Settings for the Modem Port should be as follows:
All defaults except, buffering-yes, dcd handshake-no, dsr/dtr handshake-no,
xon/xoff handshake-yes.
To install the driver, copy it to the /W6/WARP6 directory and rename it as
"WARP6.DRIVER".
Very important: use the LOCAL.LOADER program (renamed as WARP6.LOADER)
this GS.Driver. The Warp6.Loader supplied in W6BBS2.BXY is for interrupt-
driven drivers only. The GS.Driver uses firmware to handle interrupts.
SSC.Driver Interface Cable Specifications and modem requirements
The SSC.Driver requires a custom serial cable. If you have a standard cable,
you can make a few changes so that it conforms to the specs below:
Here is the exact configuration, using a standard DB-25 male-male cable.
SSC (DB-25) TO MODEM (DB-25) Hayes and compatible
1 GND --------------- 1 GND Frame ground (this line is OPTIONAL.)
2 TXD --------------- 2 TXD transmit data (from SSC to modem)
3 RXD --------------- 3 RXD receive data (from modem to SSC)
6 DSR --------------- 8 DCD data carrier detect (from remote modem)
7 SGND -------------- 7 SGND signal ground (for all signals but pin 1)
20 DTR --------------- 20 DTR data terminal ready (from SSC to modem)
Make sure that NOTHING is connected to pin 8 on the SSC end. If necessary,
cut the line from that end to ensure nothing is connected.
(DSR means data set ready. The SSC.Driver uses this input line to monitor
remote carrier status, ie. whether a remote caller is online or not.)
The jumper block on the Super Serial Card should be set to the MODEM position.
If your jumper block is not labelled, try it as it is. If it doesn't work, flip
it around.
Note that which end plugs into which device is important, because of the way
the DCD pin from the modem is connected to the DSR pin on the SSC.
Super Serial Card DIP switch settings:
Switch 1 Switch 2
1 2 3 4 5 6 7 1 2 3 4 5 6 7
d u u u u u u u u u u u u d
(d means down, u means up)
Note: the only critical switch is SW2-6 which must be on to enable interrupts.
If you want to set the switches differently to support another application, you
can. Warp Six does not use SSC firmware.
By the way: if you are using an unenhanced IIe, you should probaby get it
enhanced. The older ROMS can lose characters at high baud rates, and this will
be quite annoying to your users.
The system was designed and tested on genuine Hayes products and I have nothing
but praise for them. I have, however, had horrendous experiences with so-called
"100% Hayes compatible" modems. The Applied Engineering DataLink 2400 is a
notable exception.
If you have a Hayes compatible modem, it must meet the following requirements
to work with the SSC.Driver and/or GS.Driver:
The modem must support disabling auto-answer with the ATS0=0 command,
and must support manual answer with the ATA command.
(Note: the Apple Modem 300/1200 can't do this.)
1) It must hangup and return to command state when DTR is dropped. (This
rules out the Apple Personal Modem, by the way). DTR is set via DIP
switches or by modem commands, like AT&D2.
2) It must supply a carrier detect signal that follows that of the remote
modem. (If DCD is forced TRUE always, the system has no way of knowing
when someone has hung up.)
These are absolute requirements. Set up your modem beforehand to meet
these requirements, using the following as a guide:
Hayes & Exact compatible Hayes 2400 Effect
Set switch 1 UP Issue AT&D2&W Support DTR
Set switch 6 UP Issue AT&C1&W Follow remote DCD
Set switch 5 DOWN Issue ATS0=0&W Disable auto-answer
The BBS will set the modem up to provide digit result codes, no echo of
result codes, and extended result codes with the ATX1 command (unless you
are using the 300 baud driver, which doesn't include the X1 command.)
You can probably let the system do these without pre-configuration. (Again, I
have tested everything on genuine Hayes modems.)
Note to DataLink owners: The Hayes.2400 driver will work with the DataLink 2400
modem, provided your dip and jumper settings are correct. (See above). The 1200
baud DataLink will need the dip settings shown, but doesn't have the jumpers to
simulate a custom cable. I have included a driver to overcome this difficulty,
but it has NOT BEEN TESTED. Please contact me if it fails to function.
(My address/electronic address is in the Read.Me.First file)
IIc Cable Specifications and Modem Requirements
The IIc modem driver uses a different method to handle incoming calls because
of the way the IIc modem port was designed. Warp Six with a Super Serial Card
uses the DSR general purpose input line to monitor the status of remote
carrier detect. On the IIc, this line is used for keyboard buffering, so I
had to resort to using the DCD input. The DCD line is held low when there is no
remote carrier. On the 6551, this disables the receiver, so Warp Six cannot
see any result codes from the modem, and therefore cannot even be sure any
modem is connected, nor what baud rate an incoming call is at. To overcome
these problems, I set the modem to auto-answer, and constantly monitor the
carrier detect line for a connection. When a connection occurs, the IIc driver
displays "Incoming call..." and tries to determine the baud rate, by looking
for a carriage return from the remote caller. The driver waits 1/4 second
at each baud rate, cycling through each baud rate until either a carriage
return is found, or the connection is lost.
In testing with a IIc and Hayes Smartmodem 2400, we found it took one CR to
establish the baud rate at 2400, 2 at 1200 and 3 at 300.
The IIc driver for Warp Six requires a custom serial cable.
Here is the exact configuration:
IIC DIN-5 MALE TO MODEM DB-25 MALE
1 RTS --------------- 20 DTR data terminal ready (used to hangup modem)
2 TXD --------------- 2 TXD transmit data (from IIc to modem)
3 GND --------------- 7 GND signal ground
4 RXD --------------- 3 RXD receive date
5 DCD --------------- 8 DCD data carrier detect (from remote modem)
IIC DIN-5 MALE TO MODEM MINI-DIN-8 MALE (Apple Data Modem 2400)
1 RTS --------------- 1 HSKo Handshake Out
2 TXD --------------- 3 TXD- Transmit Data negative
3 GND --------------- 4 & 8 GND & RXD+ Signal Ground and Receive Data Positive
4 RXD --------------- 5 RXD- Receive Data negative
5 DCD --------------- 7 DCD Data Carrier Detect ****
**** Check your modem pinouts to ensure this line is DCD, not DSR.
Note: The Apple Personal Modem will work with the above cable, but it can only
provide carrier detect that is TRUE at all times, so the software will think
someone is online at all times. As well, the APM does not hangup when DTR is
dropped. This is unacceptable for running any kind of BBS.
IIC DIN-5 MALE TO MODEM DB-9 (Apple Modem 300/1200)
1 RTS --------------- 6 DTR
2 TXD --------------- 9 TXD
3 GND --------------- 3 GND
4 RXD --------------- 5 RXD
5 DCD --------------- 7 DCD
Note: The Apple Modem 300/1200 will work if you set your DIP switches like so:
1 - OFF 2 - OFF 3 - OFF
These cables will work with most terminal programs as long as you remember that
you can't receive data until a remote carrier is established (or until your
modem is set up to force carrier detect TRUE at all times). For Warp Six,
your modem must be configured to provide an accurate carrier detect signal.
Cable for Modems that Don't work with SSC.Driver:
For Apple Modem 300/1200 users: because this modem was not designed 100% Hayes
compatible, you have to use the IIc driver with the following cable:
(Note this will only work with a IIc or Super Serial Card.)
SSC (DB-25) TO MODEM (DB-9) Apple Modem 300/1200
1 GND --------------- 8 GND Chassis ground (this line is OPTIONAL)
2 TXD --------------- 9 TXD
3 RXD --------------- 5 RXD
7 SGND -------------- 3 SGND
8 DCD --------------- 7 DCD
20 DTR --------------- 6 DTR
If you have a modem with a DB-25 connector that doesn't support manual answer
with the ATA command, or simply doesn't work with the SSC.Driver, try
the IIc.Driver with the following cable:
1 GND --------------- 1 GND Frame Ground. This line is OPTIONAL.
2 TXD --------------- 2 TXD
3 RXD --------------- 3 RXD
7 SGND -------------- 7 SGND
8 DCD --------------- 8 DCD
20 DTR --------------- 20 DTR
Modem Requirements and Setup for the IIc.Driver
Your modem must meet three requirements:
1) It must hangup and return to command state when DTR is dropped. DTR is set
via DIP switches or by modem commands, like AT&D2&W.
2) It must supply a carrier detect signal that follows that of the remote
modem. (If DCD is forced TRUE always, the driver will believe a caller is
always online.)
3) It must support auto-answer, either by DIP switch or the ATS0=1 command.
These are absolute requirements. Set up your modem beforehand to meet
these requirements, using the following as a guide:
Hayes & Exact compatible Hayes 2400 or compat. Effect
Set switch 1 UP Issue AT&D2&W Support DTR
Set switch 6 UP Issue AT&C1&W Follow remote DCD
Set switch 5 UP Issue ATS0=1&W Enable auto-answer
The Modem.Init file should be set up as follows:
ATS0=1S7=25
Just this one line terminated by a carriage return is all that is required. You
can add an M0 command to shut off the modem speaker (if it has one). Just add
"M0" to the end of the command. Note: the IIc.Driver will NOT work with the
default Modem.Init file. I have included a file called IIc.Init for your
convenience. It contains the above line. Just delete the Modem.Init file from
the /W6/WARP6 directory, copy the IIc.Init file there, and rename it to be
MODEM.INIT.
If you have any problems, questions or suggestions regarding the IIc driver,
please let me know. (See ReadMe First file for my electronic ID's).
The Modem.Init file
This file contains the initialization commands for your modem. It comes set up
for the SCC.Driver and/or GS.Driver and Hayes Smartmodem 2400:
ATX1E0V0M0S0=0S7=20
AT&C1&D2
The second line should be deleted if your modem does not support ampersand (&)
commands. The first line should be customized if any of its commands are not
implemented (or implemented differently) on your modem.
What follows is a description of each command, what it does and why:
AT - prefaces each command. This is the "ATtention" code.
X1 - sets modem to provide extended result codes to indicate the baud rate
of the connection.
E0 - tells modem not to echo command characters
V0 - use non-verbal (numeric) result codes. The driver can't recognize verbal
result codes
M0 - shut off the speaker. If your BBS is in your living room or bedroom, you
don't want to hear the squeal of every connection. If you modem does not
have a speaker, remove this command. If you WANT to hear each connection,
change this command to M1.
S0=0 This command sets register 0 to 0, which tells the modem never to answer
the phone unless manually commanded by the software to do so with the ATA
command, which is issued by the SSC.Driver after a '2' (Ring) result.
This prevents the modem from answering when the software isn't ready.
S7=20 This command sets register 7 to 20, which is the number of seconds to
wait for a carrier. 20 seconds is plenty of time for most modems to
make the connection; longer wastes time between false calls. You can
set this to 15, 25 or 30 if you prefer. Feel free to experiment.
&C1 Tells the Hayes 2400 or equivalent to provide a carrier detect signal
based on that of the remote modem. This allows the driver to react when
a user hangs up on the system.
&D2 Tells the Hayes 2400 or equivalent to hangup and go to command state
when the DTR (Data Terminal Ready) line is negated. This is how the
SCC.Driver hangs up the modem. Warp Six does not support modems that
won't hangup when DTR is dropped.
Note: the carriage return at the end of each of the lines is important. After
the driver sends a line, it pauses for about a second to allow the command
to take effect. Then the next line, if any is sent.